Flag Overview
- General Widget Flags
- window flags
- Notebook Flags
- Numeric flags
- Date Flags
- Time Flags
- Conditional table
- Units Divisions
- Phone Flags
General Widget Flags
Among other things, widget flags can be used next to widget properties in the declaration of a Window object.
Flag | Description | Internal representation | Integer |
---|---|---|---|
ACCEPT_DROP | On the combo object box, the object box or the window, objects dragged from an object box across the screen can be placed with drag-and-drop. What to do with the objects must be described in the action list. | 0x00001000 | 4096 |
AUTO_POSITION | The X-positions are calculated automatically, so you do not need to specify them explicitly with SetFormat. | 0x00040000 | 262144 |
BACK 208673 | The flag BACK can be added to a button to mark it as a back button for the window it covers. If the escape key is pressed on a widget that does not define an ESC event, the SELECT event is triggered on this button. | 0x1000 | 4096 |
BITMAP_SIZE | If bitmaps are displayed (generated via a push statement in a SetFormat), they are stretched to column width without this flag. This only occurs if the width of the column is predefined (for example, by a header) or if the column width is not only determined by the bitmaps due to additional strings in the column despite AUTO_POSITION. Specifying the flag prevents this, so that each bitmap is guaranteed to be displayed in its original size. | 0x00000800 | 2048 |
CHECK_MARK | The item indicates its selection by a 'tick'. The current state can be queried with GetValue and set with PutValue. | 0x00000100 | 256 |
DEFAULT | The DEFAULT flag can be added to a button. This marks the button as the default button for the window containing it. If a SELECT event is triggered on a widget that does not define a SELECT event, the event is forwarded to the default button. This is especially useful when a form needs to be filled out for which there is only one way to proceed. (See also description of the DEFAULT flag in the description of the button) | 0x800 | 2048 |
DRAG_COPY | The currently selected objects can be dragged to another object box or to a window with the right mouse button (drag and drop). The objects can only be dropped on a target with the flag ACCEPT_DROP. The list box entries are retained. | 0x00000400 | 1024 |
DRAG_MOVE | As with DRAG_COPY the currently selected objects can be dragged to another object box or to a window. The corresponding list box entries are deleted if the objects were stored in another list box or window with the flag ACCEPT_DROP. | 0x00002000 | 8192 |
DYNAMIC_POSITIONING | Size and position of the window object are not determined by its coordinates, but by the parent window. The window object occupies the entire client area of its parent window and adapts to it when the size of the window is changed interactively. | 0x00000200 | 512 |
ENTIRE | The following mode exists for displaying a collection or m-1 or m-n relation with FillWindow and DrainWindow: The object box only displays the objects of the collection, m-1 or m-n relation. This mode is activated with the ENTIRE flag. | 0x00000800 | 128 |
HIDDEN | The enumeration, object box or window object remains invisible until the Show statement makes it appear on the screen. | 0x00000002 | 2 |
HZ_SCROLL_BAR | The object box has a horizontal scrollbar in addition to the vertical one. | 0x00000020 | 32 |
IGNORE_RECURSION | When a structure is read in, the system does not check whether an object to be inserted already exists at the insertion point as a higher-level object or as an object that is itself higher-level (parent parent, etc.). With 0 SetLimit and 0 SetLevels this can lead to an endless loop of the program! If, on the other hand, is used to | 0x20000000 | 536870912 |
IMMEDIATELY | Closes the window immediately (and not delayed, see above) This flag should only be used in connection with automatic tests: Automatic tests make it easier to open many windows simultaneously. However, each window uses a number of system resources. Delayed closing would release these resources only at the end of the test series, thus unnecessarily blocking resources used during the test. | - | - |
JUSTIFY_CENTER | The entered character string appears centered in the input field. | 0x00000001 | 1 |
JUSTIFY_RIGHT | The entered character string appears right-justified in the input field. | 0x00000002 | 2 |
LIST_INVALID | Normally only valid objects are included in an object box. However, if this flag is set, invalid objects are also included and displayed. | 0x00000200 | 512 |
LIST_ORIGIN | If an invalid object is inserted into a ListView and there is a valid exchange object, the valid exchange object is normally included. This flag prevents this so that only the valid original object is included. The interaction with LIST_INVALID is explained in more detail below. | 0x00200000 | 2097152 |
LOCKED | Widget: The widget is locked. This state can be removed by Unlock. Window: The window cannot be closed interactively (the corresponding item in the system menu is inactive). | 0x00000200 | 512 |
LOWER_CASE | Entered characters are converted to lower case. | 0x00000002 | 2 |
NO_CLEAR | The input field is not deleted by ClearWindow. | 0x00001000 | 4096 |
NO_COLUMNHEADER | No column descriptions are displayed. | 0x00400000 | 4194304 |
NO_DRAIN | The enumeration, the input field or the object box is filled by FillWindow but ignored by DrainWindow. This flag is only useful for windows that are linked to the OboxEdit statement. NO_DRAIN is used to determine whether the automatic writing of changes back into the window (by an implicit DrainWindow) should be suppressed. | 0x00080000 | 524288 |
NO_MOVE | The window cannot be moved interactively. | 0x00000080 | 128 |
NO_PRINT | The widget with this flag will not be printed when printing with PutLine | 0x00000010 | 16 |
NO_SIZE | The window cannot be interactively enlarged or reduced. | 0x00000040 | 64 |
NO_SORTHEADER | The column headers are not displayed as buttons, so the list cannot be sorted by pressing a button on a column header. However, you can still change the column width and also move columns. | 0x00000100 | 256 |
NON_SELECTABLE | The button cannot be pressed or no data can be entered in an input field. Its text or the data are displayed in grey. | 0x00000400 | 1024 |
NULL_ELEMENT | The combo object box automatically creates an entry that does not refer to any object. A NULL element is useful if the object box is used with FillWindow and DrainWindow to represent a pointer or a 1-1 or 1-m relation. | 0x00000400 | 1024 |
OPTIMIZE | The optimization refers to the access expressions for the columns of the list (compare the SetFormat statement): identical partial expressions are evaluated only once (further notes ...). | 0x00010000 | 65536 |
OVERWRITE | statement DrainWindow writes to the data field connected to the window object, such as Put(..., OVERWRITE). This flag is only effective if DrainWindow is executed for an object of the class CX_OVERWRITING_REF (or one derived from it). | 0x00000001 | 1 |
PASSWORD | Entered characters are displayed as *. | 0x00000008 | 8 |
QUICK_DISPLAY | To determine whether an expansion character () is displayed for the respective node, you must determine whether subnodes exist for it. However, this can be very time-consuming, since a large number of objects may have to be checked (if a large number of objects exist in a class for which subnodes may exist, but none of the existing objects fulfill the required filter condition). To save yourself this effort, you can set this flag. In this case, expansion flags are always set for all nodes below the level set with SetLevels, even if no subnodes exist. In the latter case, the expansion sign would simply disappear when clicked without adding subnodes. | 0x00000800 | 2048 |
SELECT_MULTIPLE | MenuItem: If there are several items with the CHECK_MARK flag among the items belonging to the menu, flag SELECT_MULTIPLE determines that the items can be selected independently of each other. Without SELECT_MULTIPLE, the previously active item is deselected when a check mark item is selected, that is, only one item is selected at a time. Groups/Windows: | 0x00000002 | 2 |
TOGGLE | When the button is pressed, it switches between the states 'pressed in' (corresponds to value TRUE) and 'raised' (initial state, corresponds to FALSE). The state can be queried with GetValue and set with PutValue. | 0x00000008 | 8 |
TRANSPARENT | The text background of the prompt appears transparent. This flag is only useful if the prompt is to be placed over colored areas or a background image. | 0x00200000 | 2097152 |
UPPER_CASE | Entered characters are converted to capital letters. | 0x00000001 | 4 |
VIEW_ONLY | The input field can only display data, but you cannot enter characters interactively. | 0x00000010 | 16 |
window flags
Flag | Description |
---|---|
LOAD | The window is opened at program start. Windows without this flag must be explicitly brought to the screen with OpenWindow. If the LOAD flag was not specified for any window, the first defined window is still opened. |
LAYOUT | A simple geometry management is applied when changing the window size. Based on the coordinates given, size changes are tracked proportionally. For more sophisticated layout management, see Attach and Constraint. |
STARTUP | The window appears during the startup phase of the system. After that it disappears automatically and Windows with the LOAD flag are opened. |
BACKGROUND_KEEP_RATIO 190484 | The graphic of the background is scaled around the center of the window so that the aspect ratio is maintained, but the window is always completely filled. |
BITMAP_SIZE | If a graphic is specified for the background, it determines the size of the window (parameters w and h are ignored). Without flag BITMAP_SIZE the graphic adapts to the size of the window and is compressed or stretched accordingly. |
CONTROL_WINDOW | The window becomes the main window. The flag is preferable to the command ControlWindow for the sake of clarity, if possible. The window then behaves as if the command ControlWindow was executed when the window was opened. |
MODAL | If a window is opened with the MODAL flag, the other windows that are visible on the screen at the same time are no longer accessible to the application interactively. You use this flag if the window sends a request to the user and you want to force him to react now. |
FLOAT | 190484 A window marked FLOAT always remains in the foreground. However, in contrast to MODAL, the other windows can still be operated. |
VT_SCROLL_BAR | The window gets a vertical scrollbar. IMPORTANT! The scrollbar is only displayed if the widget is outside the visible area. |
HZ_SCROLL_BAR | The window gets a horizontal scrollbar. IMPORTANT! The scrollbar is only displayed if the widget is outside the visible area. |
Notebook Flags
NOTEBOOK
Flag | Internal representation | Integer | ||
---|---|---|---|---|
NB_TAB_LEFT | Tabs appear on the left side of the notebook. | 0x0002 | 2 | |
NB_TAB_RIGHT | Tabs appear on the right side of the notebook. | 0x0004 | 4 | |
NB_TAB_BOTTOM | Tabs appear at the bottom of the notebook. | 0x0008 | 8 |
Numeric flags
The display of a number can be controlled by the following flags:
Flag | Description | Internal representation | Integer |
---|---|---|---|
NF_0_DECIMALS | Mapping of integer numbers | 0x0100 | 256 |
NF_1_DECIMALS | Number is displayed with one decimal place | 0x0200 | 512 |
NF_2_DECIMALS | Number is displayed with two decimal places | 0x0300 | 768 |
NF_3_DECIMALS | Number is displayed with three decimal places | 0x0400 | 1024 |
NF_4_DECIMALS | Number is displayed with four decimal places | 0x0500 | 1280 |
NF_5_DECIMALS | Number is displayed with five decimal places | 0x0600 | 1536 |
NF_6_DECIMALS | Number is displayed with six decimal places | 0x0700 | 1792 |
NF_7_DECIMALS | Number is displayed with seven decimal places | 0x0800 | 2048 |
NF_8_DECIMALS | Number is displayed with eight decimal places | 0x0900 | 2304 |
NF_AUTOMATIC_DECIMALS | The number of decimal places considered depends on the number. This value can be set with the SetPrecision function. | 0x0040 | 64 |
NF_FORCED_SIGN | Forces the output of the sign | 0x8000 | 32768 |
NF_SET_PRECISION | The value Object takes the number of decimal places as entered. | 0x0002 | 2 |
NF_SIG_PRECISION | The number of decimal places taken into account depends on the number of significant (non-zero) decimal places. | 0x0a00 | 2560 |
NF_UNIT_PRECISION | (Only from CX_VALUE) The number of decimal places displayed is controlled by the accuracy specification of the object unit (output only). The flag has higher priority than the NF_AUTOMATIC_DECIMALS flag. | 0x0c00 | 3072 |
NF_BLANCS | Represents the zero as a space | 0x0080 | 128 |
NF_CREDIT | If the number is negative, it is shown enclosed in brackets, so that, for example, "-5" is displayed as "(5)". | 0x0004 | 4 |
NF_DIMENSIONED | If it is a value, the unit is also output. | 0x0001 | 1 |
NF_NO_DECIMAL_SEPARATOR | When reading a number, the separator between integer and decimal part may be missing. | 0x0020 | 32 |
NF_NO_EXPORT_DECIMAL_SEP | When outputting a number, the separator between integer and decimal part is omitted. | 0x2000 | - |
NF_NO_FLAGS | No Flags | 0x0000 | - |
NF_PERCENT | Representation with percentage sign | 0x0010 | 16 |
NF_THOUSANDS_SEPARATOR | A separator is inserted into the number after every 3 digits. For example, the number "1000000" is displayed as "1.000.000". The specification after how many characters a separator should be inserted is made by the location-specific data and can thus be changed. | 0x0008 | 8 |
PF_NUMERATOR | When an object of class CX_PERCENT_PER or CX_VALUE_PER is output, only the counter is taken into account. | 0x1000 | 4096 |
Date Flags
The display of a date can be controlled by the following flags:
Flag | Description | Internal representation | Integer |
---|---|---|---|
DF_ALLOW_2DIGIT_INPUT | The date can be entered with 2 consecutive digits (without separator). The current month and year are automatically added. This flag must not be entered together with DF_JAPANESE_FORMAT (format YY.MM.DD) or DF_US_FORMAT (format MM.DD.YY). | 0x20000 | 131072 |
DF_ALLOW_4DIGIT_INPUT | The date can be entered with 4 consecutive digits (without separators). The current year is automatically added. This flag must not be entered together with DF_JAPANESE_FORMAT (format JJ.MM.TT). | 0x10000 | 65536 |
DF_ALLOW_INCOMPLETE_DATE | Processing of an incomplete date is permitted, i.e. entries such as "5.7" (corresponding to 5 July) can be made. | 0x02000 | 8192 |
DF_ALLOW_ZERO_DATE | Processing of a completely undefined date, i.e. the date is completely unknown. It is entered either as nothing ("") or as an incomplete date (?.?.?). Otherwise, the following error occurs: Error 173 - Without a flag set, an undefined date ('zero date') cannot be set. | 0x08000 | 32768 |
DF_ALPHA_MONTH | The month is given as text, e.g. 5 July 1996 | 0x00040 | 64 |
DF_ASIAN_FORMAT | Asian date format: YYYY.MM.DD | 0x00004 | 4 |
DF_DASH | Minus sign '-' as separator between the date parts, e.g. 5-7-1996 | 0x00010 | 16 |
DF_DAY_OF_WEEK | The day of the week is also specified, e.g. Friday, 5.7.1996 | 0x00080 | 128 |
DF_EUROPEAN_FORMAT | European date format: DD.MM.YYYY | 0x00002 | 2 |
DF_JAPANESE_FORMAT | Japanese date format: YYYY.MM.DD | 0x00004 | 4 |
DF_MILITARY_FORMAT | Military date format of the US Air Force: There are two standards. The date output is either with a written out month and a four-digit year, e.g. 5 July 1996, or in combination with (DF_SHORT_YEAR and DF_SHORT_MONTH) with an abbreviated month and two-digit year, e.g. 5 Jul 96. | 0x00008 | 8 |
DF_NO_FLAGS | No flags, i.e. use of the default setting. | - | - |
DF_SHORT_DAY | Day of the week is abbreviated with, e.g. Di., 26.11.1996 | 0x00800 | 2048 |
DF_SHORT_MONTH | Month is abbreviated to, e.g. 26. Nov. 1996 | 0x00400 | 1024 |
DF_SHORT_YEAR | Year is abbreviated with, e.g. 26.11.96 | 0x00200 | 512 |
DF_SLASH | Slash '/' as separator between the date parts, e.g. 26/11/1996 | 0x00020 | 32 |
DF_SYSTEM | Places the current system date in the date object if an "empty" date is read. | 0x04000 | 16384 |
DF_UPPER_CASE | All text is in capital letters, e.g. 26 NOVEMBER 1996. The flag does not change the actual format. If no letters are contained, there is no effect. | 0x00100 | 256 |
DF_US_FORMAT | American date format: MM.DD.YYYY | 0x00001 | 1 |
DF_ZERO_FILL | Daily and monthly details always consist of two digits, e.g. 05.07.1996 | 0x01000 | 4096 |
Time Flags
The display of a time can be controlled by the following flags:
Flag | Description | Internal representation | Integer |
---|---|---|---|
TF_COLON_SEPARATOR | The colon ':' as separator between the individual time components. | 0x0080 | 128 |
TF_HUNDREDTHS | Processing of hundredths of a second. | 0x0002 | 2 |
TF_LOWER_CASE | Text output is in lower case. | 0x0400 | 1024 |
TF_NO_FLAGS | No flags. | 0x0000 | 0 |
TF_NO_HOURS | The time is output without specifying the hours. | 0x0004 | 4 |
TF_NO_MINUTES | Output of the time is without indication of the minutes. | 0x0008 | 8 |
TF_NO_SEPARATOR | The time is given without separator. | 0x0100 | 256 |
TF_SECONDS | Processing of seconds. | 0x0001 | 1 |
TF_SYSTEM | Sets the current system time in the time object if an "empty" time is read in. | 0x0800 | 2048 |
TF_TWELVE_HOUR | American time format with 12 hours. | 0x0010 | 16 |
TF_TWENTY_FOUR_HOUR | European time format with 24 hours. | 0x0020 | 32 |
TF_UPPER_CASE | Text output is in large print. | 0x0200 | 512 |
TF_ZERO_FILL | Output with leading zeros (hour and minute always consist of two digits) | 0x0040 | 64 |
Conditional table
The evaluation of a conditional object table can be controlled by the following flags:
Flag | Description | Internal representation |
---|---|---|
CF_COMPULSORY | If no entry is found, an error message is displayed (specify both flags together). | 0x1 |
CF_REPORT | 0x2 | |
CF_NEGLECT | If a variable cannot be bound, the affected condition is evaluated to FALSE and no error is reported. For conditions, the evaluation function Evaluate2 is used. If the conditional table is evaluated to a value within a term (or when calling Amount), 0.0 (CX_NUMERIC) is returned if no condition of the table is fulfilled. (This does not apply to query and pick) | 0x4 |
CF_DYNAMIC_BINDING | For conditions, the Evaluate3 evaluation function is used and an error is reported if the formula contains missing variables and no BindMessage is set. | 0x8 |
If neither CF_NEGLECT nor CF_DYNAMIC_BINDING are set, then conditions are evaluated via Evaluate3 if BindMesage is set and via Evaluate1 otherwise.
Units Divisions
A unit area represents the combination of several units. For example, all length specifications form a range. In addition, the combination of several ranges can also be considered a new range. The following table lists all ranges that are available:
Flag | Area | Unit example | Internal representation | Integer |
---|---|---|---|---|
UF_ALL_UNITS | all areas combined | - | - | - |
UF_AREA | Areas | Square meter (m²) | 0x00400000 | 4194304 |
UF_ANGLES | Angle | degrees (º) | 0x20000000 | 536870912 |
UF_BYTE | Byte | KByte | 0x10000000 | 268435456 |
UF_COMPOUND | composite units | Newton (N) | 0x04000000 | 67108864 |
UF_CURRENCY | Currencies | US Dollar (USD) | 0x02000000 | 33554432 |
UF_DURATION | Times | Minute (min) | 0x00080000 | 524288 |
UF_LENGTH | Lengths | Meters (m) | 0x00200000 | 2097152 |
UF_PACKING | Packaging | Cans | 0x00100000 | 1048576 |
UF_PIECES | Quantities | Dozen | 0x00010000 | 65536 |
UF_TEMPERATURE | Temperatures | degrees Celsius (ºC) | 0x500001C0 | 1342177728 |
UF_VOLUME | Room details | Cubic meter (m³) | 0x00800000 | 8388608 |
UF_WEIGHT | Weights | Kilogram (kg) | 0x01000000 | 16777216 |
Phone Flags
These flags control the conversion of phone numbers stored in CX_PHONE objects into strings. When a CX_PHONE object is view exported, on the one hand the passed flags are used and on the other hand the current locale is used. The following table lists all possible flags. For the example it is assumed that the phone number "+49-40-209401-37" is stored in the data field and the locale is set to the number "+49-40-209401-0".
Flag | Description | Example | Internal representation | Integer |
---|---|---|---|---|
FF_DELIMITER_DASH | A hyphen '-' is used as separator. This character is used to separate the parts country code, area code, phone number and extension. | -37 | 0x0000 | 0 |
FF_DELIMITER_SPACE | The separator is a space character. | 37 | 0x0001 | 1 |
FF_DELIMITER_SLASH | A slash '/' separates the individual parts of the telephone number. Only one of these 3 flags can be used at a time, they cannot be combined! | /37 | 0x0002 | 2 |
FF_DELIMITER_NONE | No separator is used. | 37 | 0x0003 | 3 |
FF_EXTENSION_DELIMITER_DASH | A hyphen '-' separates the extension number from the rest of the number, regardless of what has been set as the separator. This makes it easier to highlight the extension number if, for example, the space character was selected as the separator. | -37 | 0x0004 | 4 |
FF_DISPLAY_AREACODE | Always display the area code (if one is available), even if it is not necessary because the connection and your location are in the same city or region. | 040-209401-37 | 0x0008 | 8 |
FF_DISPLAY_COUNTRYCODE | Analogous behaviour for the country code. This flag additionally activates FF_DISPLAY_AREACODE. | 0049-40-209401-37 | 0x0010 | 16 |
FF_EMPHASIZE_AREACODE | When the area code is displayed, this flag highlights the area code by putting it in brackets (with round brackets). If no area code is required, this flag has no effect. | (040)-209401-37 | 0x0020 | 32 |
FF_EMPHASIZE_COUNTRYCODE | Analogous behaviour for the country code. | (0049)-40-209401-37 | 0x0040 | 64 |
FF_RESOLVE_VANITY | Resolve the vanity codes by converting letters in the phone number into numbers. Useful if no letters are printed on the phone keypad or if these are not vanity codes. | -37 | 0x0080 | 128 |
FF_DIALTONE CODE | With telephone systems it is often the case that a code, e.g. a zero, must be dialled to get an outside line. Such a code is specified in the locale. If this code should be prefixed to the telephone number, this flag must be specified. | 0-37 | 0x0100 | 256 |
FF_INTL_FORMAT | Formats the phone number in international format. It begins with a '+' and contains exactly three hyphens '-' separating the individual ranges. If this flag is specified, all other flags except the FF_DELIMITERs and FF_RESOLVE_VANITY are ignored. | +49-40-209401-37 | 0x0200 | 512 |
FF_TECHNICAL | The result consists of digits only, i.e. all separators are eliminated and the vanity codes are resolved into digits. The number can thus be passed on to technical devices, for example. All other flags (except FF_DIALTONECODE) are ignored. FF_DIALTONECODE should always be used together with this flag. | 37 | 0x0400 | 1024 |
Unless otherwise specified, the flags can be combined in any way. For your convenience there are 4 flags that combine some of the above:
Flag | Description | Example | Internal representation | Integer |
---|---|---|---|---|
FF_SHORT | Make the number as short as possible and separate the remaining ranges with a hyphen '-'. The code for obtaining an outside line is not prefixed to the telephone number. (corresponds to: FF_DELIMITER_DASH) | -37 | 0x0000 | 0 |
FF_MEDIUM | Like FF_SHORT, but the area code is always displayed (if one is available). (corresponds to: FF_DELIMITER_DASH | FF_DISPLAY_AREACODE) | 040-209401-37 | 0x0008 | 8 |
FF_MEDIUM_AREAEMPH | Like FF_MEDIUM, the area code is additionally highlighted by brackets. The individual parts of the number are separated by blanks. The extension number is separated by a hyphen. (corresponds to: FF_DELIMITER_SPACE | FF_EXTENSION_DELIMITER_DASH | FF_DISPLAY_AREACODE | FF_EMPHASIZE_AREACODE) | (040) 209401-37 | 0x002D | 45 |
FF_LONG | Like FF_MEDIUM, additionally the country code is always displayed. (corresponds to: FF_DELIMITER_DASH | FF_DISPLAY_AREACODE | FF_DISPLAY_COUNTRYCODE) | 0049-40-209401-37 | 0x0018 | 24 |
FF_EXCHANGE | Formatting for exchange with mobile phones (corresponds to: FF_INTL_FORMAT | FF_DELIMITER_NONE | FF_RESOLVE_VANITY) | +494020940137 | 0x0283 | 643 |
FF_TAPI | Format of the TAPI (corresponds to: FF_DISPLAY_AREACODE | FF_DISPLAY_COUNTRYCODE | FF_DELIMITER_NONE | FF_RESOLVE_VANITY) | 00494020940137 | 0x009B | 155 |